1. Field
The present application relates generally to the operation of overlay networks, and more particularly, to methods and apparatus for creation, advertisement, and discovery of peer-to-peer overlay networks.
2. Background
A network in which member nodes obtain services in the absence of server-based infrastructure is referred to as a “peer-to-peer” overlay network. In a peer-to-peer overlay, peer nodes co-operate with each other both to provide services and to maintain the network. Peer-to-peer overlay networks can be built on top of one or more underlying networks, such as networks utilizing the Internet Protocol (IP).
An overlay network is typically formed after an overlay advertisement is made on a medium that is common to multiple nodes, such as the Internet. However, access to the Internet to bring together overlay advertisers and nodes interested in joining the overlay network may not always exist. This situation may be problematic because even though Internet access may not be available there may still be a need to advertise and form overlay networks. For example, two nodes may individually use link local broadcast to attempt to create an overlay network. However this can result in a first set of nodes joining a first overlay network advertised by one of the nodes and a second set of nodes joining a second overlay network advertised by the other node. This results in concurrent overlay creation that can cause islands of connectivity. This situation can also occur if the interfaces used by the nodes to advertise the overlay networks are different.
Even if the Internet is available, it may be difficult for nodes to join an advertised overlay network. For example, nodes that have decided to join an overlay network need to learn how to reach bootstrap peers that control the joining process. Typically, bootstrap peers are required to have globally routable addresses and it may be difficult for a node to reach these bootstrap peers.
Thus, there are two challenges associated with overlay network creation, advertisement, and discovery. The first challenge is how to reduce the chance of concurrent overlay creation that can cause islands of connectivity. The second challenge is to make joining an overlay network more general and useful, and to do that, bootstrap peer reachability needs to be simplified.
One approach for solving overlay network discovery problems uses a domain name service (DNS) infrastructure to advertise overlay networks. For example, each node uses a dynamic DNS-like infrastructure to advertise overlay networks. Unfortunately, this technique is inefficient and makes it difficult for a node to discover and join a particular overlay network. For example, this approach does not address the problem of concurrent overlay network creation since it assumes Internet access is always available to advertise or discover overlays. Furthermore, discovery is an even harder problem since implementing a search over the DNS infrastructure does not scale.
Therefore, it would be desirable to have a simple cost effective mechanism that operates to facilitate the creation, advertisement, and discovery of peer-to-peer overlay networks.